home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Magazine / Morphos / GCC / ppc-amigaos / include / clib / powerpc_protos.h < prev    next >
C/C++ Source or Header  |  2000-02-28  |  5KB  |  214 lines

  1. #ifndef CLIB_POWERPC_PROTOS_H
  2. #define CLIB_POWERPC_PROTOS_H
  3.  
  4. /*
  5. **  $VER: powerpc_protos.h 2.0 (24.12.97)
  6. **  WarpOS Release 14.1
  7. **
  8. **  '(C) Copyright 1997 Haage & Partner Computer GmbH'
  9. **       All Rights Reserved
  10. */
  11.  
  12. #ifndef UTILITY_TAGITEM_H
  13. #include <utility/tagitem.h>
  14. #endif
  15.  
  16. #ifndef DEVICES_TIMER_H
  17. #include <devices/timer.h>
  18. #endif
  19.  
  20. #ifndef POWERPC_PORTSPPC_H
  21. #include <powerpc/portsPPC.h>
  22. #endif
  23.  
  24. #ifndef POWERPC_TASKS_H
  25. #include <powerpc/tasksPPC.h>
  26. #endif
  27.  
  28. #ifndef POWERPC_SEMAPHORES_H
  29. #include <powerpc/semaphoresPPC.h>
  30. #endif
  31.  
  32. #ifndef POWERPC_POWERPC_H
  33. #include <powerpc/powerpc.h>
  34. #endif
  35.  
  36. #ifndef __PPC__
  37.  
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41.  
  42. /* *** ppc call */
  43. ULONG RunPPC(struct PPCArgs *);
  44. ULONG WaitForPPC(struct PPCArgs *);
  45.  
  46. /* *** hardware */
  47. ULONG GetCPU(VOID);
  48.  
  49. /* *** debugging */
  50. VOID PowerDebugMode(ULONG);
  51. VOID SPrintF68K(STRPTR,APTR);
  52.  
  53. /* *** memory */
  54. APTR AllocVec32(ULONG,ULONG);
  55. VOID FreeVec32(APTR);
  56.  
  57. /* *** general information */
  58. ULONG GetPPCState(VOID);
  59.  
  60. #ifndef POWERPCLIB_V7
  61.  
  62. /* *** ports */
  63. struct Message *AllocXMsg(ULONG,struct MsgPort);
  64. VOID FreeXMsg(struct Message);
  65. VOID PutXMsg(struct MsgPortPPC, struct Message);
  66.  
  67. #endif /* POWERPCLIB_V7 */
  68.  
  69. #ifdef __cplusplus
  70. };
  71. #endif
  72.  
  73. #ifdef STORMPRAGMAS
  74. #ifndef _INCLUDE_PRAGMA_POWERPC_LIB_H
  75. #include <pragma/powerpc_lib.h>
  76. #endif
  77. #endif
  78.  
  79. #else /* __PPC__ */
  80.  
  81. #ifdef __STORM__                /* other syntax for StormC */
  82.  
  83. #ifndef STORMPROTOS_POWERPC_SPROTOS_H
  84. #include <stormprotos/powerpc_sprotos.h>
  85. #endif
  86.  
  87. #else /* __STORM__ */
  88.  
  89.  
  90. #ifdef __cplusplus
  91. extern "C" {
  92. #endif
  93.  
  94. ULONG Run68K(struct PPCArgs *);
  95. ULONG WaitFor68K(struct PPCArgs *);
  96.  
  97. /* *** debugging */
  98. VOID SPrintF(STRPTR, APTR);
  99.  
  100. /* *** memory */
  101. APTR AllocVecPPC(ULONG, ULONG, ULONG);
  102. LONG FreeVecPPC(APTR);
  103.  
  104. /* *** time measurement */
  105. VOID GetSysTimePPC(struct timeval *);
  106. VOID AddTimePPC(struct timeval *, struct timeval *);
  107. VOID SubTimePPC(struct timeval *, struct timeval *);
  108. LONG CmpTimePPC(struct timeval *, struct timeval *);
  109.  
  110. #ifndef POWERPCLIB_V7
  111. /* *** more debugging */
  112. ULONG SnoopTask(struct TagItem *);
  113. ULONG SnoopTaskTags(Tag tag1, ...);
  114. VOID EndSnoopTask(ULONG);
  115.  
  116. /* *** more memory */
  117. VOID FreeAllMem();
  118. VOID CopyMemPPC(APTR, APTR, ULONG);
  119.  
  120. /* *** lists */
  121. VOID AddHeadPPC(struct List *, struct Node *);
  122. VOID AddTailPPC(struct List *, struct Node *);
  123. VOID EnqueuePPC(struct List *, struct Node *);
  124. struct Node *FindNamePPC(struct List *, STRPTR);
  125. VOID InsertPPC(struct Node *, struct Node *);
  126. struct Node *RemHeadPPC(struct List *);
  127. VOID RemovePPC(struct Node *);
  128. struct Node *RemTailPPC(struct Node *);
  129.  
  130. /* *** semaphores */
  131. VOID AddSemaphorePPC(struct SignalSemaphorePPC *);
  132. LONG AttemptSemaphorePPC(struct SignalSemaphorePPC *);
  133. struct SignalSemaphorePPC *FindSemaphorePPC(STRPTR);
  134. VOID FreeSemaphorePPC(struct SignalSemaphorePPC *);
  135. LONG InitSemaphorePPC(struct SignalSemaphorePPC *);
  136. VOID ObtainSemaphorePPC(struct SignalSemaphorePPC *);
  137. VOID ReleaseSemaphorePPC(struct SignalSemaphorePPC *);
  138. VOID RemSemaphorePPC(struct SignalSemaphorePPC *);
  139.  
  140. /* *** signals */
  141. LONG AllocSignalPPC(LONG);
  142. VOID FreeSignalPPC(LONG);
  143. ULONG SetSignalPPC(ULONG, ULONG);
  144. VOID SignalPPC(struct TaskPPC *, ULONG);
  145. ULONG WaitPPC(ULONG);
  146. ULONG WaitTime(ULONG, ULONG);
  147.  
  148. /* *** tasks */
  149. struct TaskPPC *CreateTaskPPC(struct TagItem *);
  150. struct TaskPPC *CreateTaskPPCTags(Tag tag1, ...);
  151. VOID DeleteTaskPPC(struct TaskPPC *);
  152. struct TaskPPC *FindTaskPPC(STRPTR);
  153. struct TaskPtr *LockTaskList();
  154. LONG SetTaskPriPPC(struct TaskPPC *, LONG);
  155. VOID UnLockTaskList();
  156. struct TaskPPC *FindTaskByID(LONG);
  157. LONG SetNiceValue(struct TaskPPC *, LONG);
  158.  
  159. /* *** ports */
  160. VOID AddPortPPC(struct MsgPortPPC *);
  161. struct MsgPortPPC *CreateMsgPortPPC();
  162. VOID DeleteMsgPortPPC(struct MsgPortPPC *);
  163. struct MsgPortPPC *FindPortPPC(STRPTR);
  164. struct Message *GetMsgPPC(struct MsgPortPPC *);
  165. VOID PutMsgPPC(struct MsgPortPPC *, struct Message *);
  166. struct Message *WaitPortPPC(struct MsgPortPPC *);
  167. VOID RemPortPPC(struct MsgPortPPC *);
  168. VOID ReplyMsgPPC(struct Message *);
  169. struct Message *AllocXMsgPPC(ULONG, struct MsgPortPPC *);
  170. VOID FreeXMsgPPC(struct Message *);
  171. VOID PutXMsgPPC(struct MsgPort *, struct Message *);
  172. struct MsgPortPPC *SetReplyPortPPC(struct Message *, struct MsgPortPPC *);
  173.  
  174. /* *** tag items */
  175. struct TagItem *FindTagItemPPC(ULONG, struct TagItem *);
  176. ULONG GetTagDataPPC(ULONG, ULONG, struct TagItem *);
  177. struct TagItem *NextTagItemPPC(struct TagItem **);
  178.  
  179. /* *** hardware */
  180. VOID ChangeMMU(ULONG);
  181. VOID GetInfo(struct TagItem *);
  182. VOID SetCache(ULONG, APTR, ULONG);
  183. ULONG SetHardware(ULONG, APTR);
  184. VOID GetHALInfo(struct TagItem *);
  185. VOID SetScheduling(struct TagItem *);
  186.  
  187. /* *** exceptions */
  188. VOID ModifyFPExc(ULONG);
  189. VOID RemExcHandler(APTR);
  190. APTR SetExcHandler(struct TagItem *);
  191. APTR SetExcHandlerTags(Tag tag1, ...);
  192. VOID SetExcMMU();
  193. VOID ClearExcMMU();
  194.  
  195. /* *** supervisor */
  196. ULONG Super();
  197. VOID User(ULONG);
  198.  
  199. /* *** 68K connection */
  200. VOID Signal68K(struct Task *, ULONG);
  201.  
  202. #endif /* POWERPCLIB_V7 */
  203.  
  204. #ifdef __cplusplus
  205. };
  206. #endif
  207.  
  208. #endif /* __STORM__ */
  209.  
  210. #endif /* __PPC__ */
  211.  
  212.  
  213. #endif /* CLIB_POWERPC_PROTOS_H */
  214.